1. Field of the Invention
This invention generally relates to semiconductor memory devices, and, in particular, to dynamically adjusting a setup-time and hold-time window.
2. Description of the Related Art
Modern integrated circuit devices are comprised of millions of semiconductor devices, e.g., transistors, formed above a semiconductor substrate, such as silicon. These devices are very densely packed, i.e., there is little space between them. Similarly, densely packed electrically conducting lines may also be formed in the semiconductor substrate. By forming selected electrical connections between selected semiconductor devices and selected conducting lines, circuits capable of performing complex functions may be created. For example, bits of data may be stored by providing electrical current to a plurality of bit lines and an orthogonal plurality of wordlines that may be electrically coupled to one or more capacitors in a semiconductor memory.
The semiconductor memory may be a dynamic random access memory, a flash memory, and the like. The semiconductor memory typically comprises an array of memory cells, address decoding circuitry for selecting one, or a group, of the memory cells for reading or writing data, sensing circuitry for detecting the digital state of the selected memory cell or memory cells, and input/output lines to receive the sensed data and convey that information for eventual output from the semiconductor memory. In many cases, the array of memory cells will be sub-divided into several sub-arrays, or subsets, of the complete collection of memory cells. For example, a semiconductor memory having 16 megabits (224 bits) of storage capacity, may be divided into 64 sub-arrays, each having 256 K (218) memory cells.
Flash memory (sometimes called xe2x80x9cflash RAMxe2x80x9d) is a type of non-volatile memory that can be erased and reprogrammed in units of memory called blocks. Flash memory is a variation of electrically erasable programmable read-only memory (EEPROM) that, unlike flash memory, is erased and rewritten at the byte level, which is slower than flash memory updating. Flash memory is commonly used to hold control code such as the basic input/output system (BIOS) in a personal computer. When BIOS needs to be changed (rewritten), the flash memory can be written in block (rather than byte) sizes, making it faster to update. Applications employing flash memory include digital cellular phones, digital cameras, LAN switches, computers, digital set-up boxes, embedded controllers, and other devices. These applications generally call for extensive memory access.
Accessing memory requires a circuit to capture the address and data at precise timing in relation to clock signals that drive a circuit. Errors occurring during the capturing of addresses and data may cause errors in accessing the data stored in memory. Many times external factors, such as temperature drifts, voltage-level drifts, and the like, can affect a window of a time period when data and/or addresses may be captured by a circuit. This window is generally defined by a setup-time and a hold-time, during which the entire process of capturing of data and/or addresses must take place for proper access of data.
In order to acquire, access, or capture data and/or addresses during transfer of memory data from one device to another, clocking of the data and addresses and their timing is desirable. A setup-time and a hold-time are generally used to time the clocking/capturing of data and/or addresses. A setup-time and hold-time is required for the proper timing of data/address capture. To ensure proper access of data/address, a memory accessing system generally works to complete the data/address capture with the window, in which the targeted data/addresses is clock-latched or captured. A window that represents a period of opportunity to latch/clock/capture data or addresses is usually predetermined for the operation of a particular device. For example, a period of time that is enclosed by the boundary defined by a setup-time and a hold-time provides the limits for determining a window of opportunity for capture of data and/or addresses.
FIG. 1 illustrates a diagram of a window of opportunity for capturing data/addresses. The window of opportunity of FIG. 1 is defined by the outer borders comprising a setup-time and a hold-time. The borders defining a time period in which a window of opportunity to capture data/addresses is defined by a specified setup-time boundary/limit 110 and a specified hold-time boundary/limit 120. The limits 110 and 120 define the time frame in which a window can be defined to capture data/addresses.
Operation of typical circuits that drive the capturing of data/addresses usually call for operating on a predetermined normal window of time period in which data can be captured. However, this particular window may slide within the outer limits set forth by the specified setup-time limit 110 and specified hold-time limit 120. The movement of the window of a time period to capture data may be caused by a number of factors, such as changes in temperature, operation, voltage-source levels, and the like. A centerline 130 provides a median position within the time frame encapsulated by the specified setup-time limit 110 and the specified hold-time limit 120 in which a window can be defined for capturing data/addresses. Ideally, it is desirable to center a window for capturing data/addresses about the centerline 130. The centerline 130 is generally exactly in the center between the specified setup-time limit 110 and the specified hold-time limit 120. However, movement of the window may cause errors in the timing, which may cause loss of data/addresses, or may cause the capturing of incorrect data and addresses.
A normal window at low temperature 140 is shown positioned asymmetrically about the centerline 130 within the encapsulated time frame. However, at high temperature the window in which data/addresses may be captured moves to the other side in an asymmetric fashion about the centerline 130, as indicated by a normal window at high temperature 150. Therefore, in order to ensure proper data/addresses access across a tolerable set of temperature range and/or voltage levels, an overall window 160 is defined.
The overall window 160 is generally calculated to encompass both a normal window at low temperature 140 and a normal window at high temperature 150. Therefore, the outer limits of the windows 140, 150 define a larger overall window 160 in order to ensure proper access/capture of data/addresses. This causes the overall window 160 to become large, thereby affecting the efficiency of the operation of electronic devices due to the large window needed for proper operation across temperature and/or voltage ranges. The use of the overall window 160 may lead to many inefficiencies and/or errors during the operation of memory access for data access devices.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
In one aspect of the instant invention, a method is provided for dynamically centering a setup-time and hold-time window. An access window defined by a setup-time and a hold-time is determined. A determination is made whether the access window is centered about a centerline. The centerline is a point between a predetermined setup-time limit and a predetermined hold-time limit. A dynamic access window centering process is performed in response to the determination that the access window is not centered about the centerline. The dynamic access window centering process includes: determining that the access window has shifted from the centerline; and providing at least one of a dynamic delay and a dynamic speed-up of the access window based upon the determination that the access window has shifted from the centerline.
In another aspect of the instant invention, an apparatus is provided for dynamically centering a setup-time and hold-time window. The apparatus of the present invention comprises a data storage device to provide stored data and a controller coupled to the data storage device. The controller is adapted to detect a movement of an access window defined by a predetermined setup-time limit and a predetermined hold-time limit and dynamically centers the access window between the setup-time and the hold-time limit in response to the movement of the access window.
In another aspect of the instant invention, a circuit is provided for dynamically centering a setup-time and hold-time window. The circuit of the present invention comprises a controller coupled to the memory. The controller is adapted to detect a movement of an access window defined by a predetermined setup-time limit and a predetermined hold-time limit and dynamically centers the access window between the setup-time and the hold-time limit in response to the movement of the access window.
In another aspect of the instant invention, a system board is provided for dynamically centering a setup-time and hold-time window. The system board of the present invention comprises a first device comprising a memory location for storing data and a dynamic access window unit. The dynamic access window unit is adapted to detect a movement of an access window defined by a predetermined setup-time limit and a predetermined hold-time limit and dynamically centers the access window between the setup-time and the hold-time limits in response to the movement of the access window. The system board also includes a second device operatively coupled to the first device. The second device is adapted to access data from the first device based upon the access window.
In yet another aspect of the instant invention, a memory device is provided for dynamically centering a setup-time and hold-time window. The memory device of the present invention comprises a controller adapted to detect a movement of an access window defined by a predetermined setup-time limit. The controller is also adapted to detect a predetermined hold-time limit and dynamically centers the access window between the setup-time and the hold-time limit in response to the movement of the access window.